import request from '@/config/axios'

// 阶段-轮次-候选人 VO
export interface StageRoundCandidateVO {
  id: string // 轮次候选人ID
  candidateId: string // 候选人ID
  studentId: number // 学生ID
  roundId: string // 轮次ID
  debateTime: Date // 答辩时间段
  score: string // 得分
  isParallel: boolean // 是否并列
  awardsId: string // 评奖ID
  instanceRuleId: string // 评奖阶段规则ID
  isWin: boolean // 是否获奖
  remark: string // 备注
}

// 学生答辩时间安排VO
export interface StageRoundCandidateDebateVO {
  id: string // 阶段-轮次-候选人的主键
  accountId: number // 账号id
  studentCode: string // 学号
  studentName: string // 姓名
  deptName: string // 研究部
  major: string // 专业
  phone: string // 手机号
  email: string // 邮箱
  primaryMentor: string // 导师名称
  debateTime: string // 答辩时间（ISO 8601 格式，例如 "2025-04-20T15:30:00"）
}

// 阶段-轮次-候选人 API
export const StageRoundCandidateApi = {
  // 查询阶段-轮次-候选人分页
  getStageRoundCandidatePage: async (params: any) => {
    return await request.get({ url: `/awards/stage-round-candidate/page`, params })
  },

  // 查询阶段-轮次-候选人详情
  getStageRoundCandidate: async (id: string) => {
    return await request.get({ url: `/awards/stage-round-candidate/get?id=` + id })
  },

  // 新增阶段-轮次-候选人
  createStageRoundCandidate: async (data: StageRoundCandidateVO) => {
    return await request.post({ url: `/awards/stage-round-candidate/create`, data })
  },

  // 修改阶段-轮次-候选人
  updateStageRoundCandidate: async (data: StageRoundCandidateVO) => {
    return await request.put({ url: `/awards/stage-round-candidate/update`, data })
  },

  // 删除阶段-轮次-候选人
  deleteStageRoundCandidate: async (id: string) => {
    return await request.delete({ url: `/awards/stage-round-candidate/delete?id=` + id })
  },

  // 导出阶段-轮次-候选人 Excel
  exportStageRoundCandidate: async (params) => {
    return await request.download({ url: `/awards/stage-round-candidate/export-excel`, params })
  },

  // 获得指定阶段-轮次-候选人分页 返回StageRoundCandidateDebateVO[]
  getStageRoundCandidatePageByRule: async (params: any) => {
    return await request.get({ url: `/awards/stage-round-candidate/page-by-rule`, params })
  }
}
